Cos'è can bus?
CAN Bus (Controller Area Network)
Il CAN bus (Controller Area Network) è un protocollo di comunicazione seriale robusto, utilizzato principalmente in ambito automotive per permettere a vari microcontrollori e dispositivi di comunicare tra loro senza l'utilizzo di un computer host. È un sistema distribuito, il che significa che ogni nodo (ECU - Electronic Control Unit) è intelligente e può comunicare con gli altri nodi sulla rete.
Caratteristiche principali:
- Comunicazione multi-master: Qualsiasi nodo può trasmettere messaggi quando il bus è libero.
- Priorità dei messaggi: I messaggi vengono inviati con priorità, assicurando che i messaggi critici vengano trasmessi prima. La priorità è determinata dall'ID del messaggio.
- Robustezza: Progettato per operare in ambienti rumorosi ed elettromagneticamente ostili, come quelli all'interno di un'automobile. Utilizza segnalazione differenziale per ridurre gli effetti del rumore.
- Affidabilità: Include meccanismi di rilevamento e gestione degli errori, come il controllo di ridondanza ciclica (CRC) per garantire l'integrità dei dati.
- Efficienza: Utilizza un protocollo di arbitraggio non distruttivo, il che significa che il nodo con il messaggio più alto di priorità vince sempre l'accesso al bus.
Componenti principali:
- Controller CAN: È il chip che implementa il protocollo CAN.
- Transceiver CAN: Interfaccia fisica tra il controller CAN e il bus fisico. Converte i segnali logici dal controller CAN in segnali differenziali per la trasmissione sul bus.
- Bus: Il mezzo fisico (di solito una coppia di fili intrecciati) attraverso il quale i dati vengono trasmessi.
Applicazioni:
- Automotive: Centralina motore (ECU), sistema frenante antibloccaggio (ABS), airbag, controllo della trasmissione, servosterzo elettronico, body control module (BCM), ecc.
- Industria: Automazione industriale, robotica, controllo di macchine.
- Medicale: Dispositivi medici.
- Aerospaziale: Sistemi di controllo di volo.
Standard:
- CAN 2.0A (Standard CAN): Utilizza ID a 11 bit (2048 ID possibili).
- CAN 2.0B (Extended CAN): Utilizza ID a 29 bit (536,870,912 ID possibili).
Funzionamento:
Quando un nodo vuole trasmettere un messaggio, attende che il bus sia libero. Inizia quindi a trasmettere il frame CAN. Se un altro nodo tenta di trasmettere contemporaneamente un messaggio con una priorità più alta, quest'ultimo vince l'arbitraggio e il nodo con la priorità più bassa smette di trasmettere e ritenta quando il bus è di nuovo libero. Tutti gli altri nodi sulla rete ascoltano il messaggio. Ogni nodo controlla l'ID del messaggio e, se è rilevante per quel nodo, lo elabora. Altrimenti, lo ignora.
Vantaggi:
- Riduzione del cablaggio: Un singolo CAN bus può sostituire molti cablaggi dedicati, risparmiando peso e costi.
- Flessibilità: Facile aggiungere o rimuovere nodi dalla rete.
- Affidabilità: I meccanismi di gestione degli errori garantiscono un'elevata integrità dei dati.
Svantaggi:
- Larghezza di banda limitata: La velocità di trasmissione è limitata, soprattutto per le applicazioni che richiedono un'elevata quantità di dati.
- Complessità: La configurazione e la gestione di una rete CAN possono essere complesse.
- Sicurezza: Le vulnerabilità di sicurezza del CAN bus sono state sfruttate in alcuni attacchi informatici ai veicoli.
Concetti chiave: